草庐IT

pointers - 解析指针

全部标签

发送给函数的指针

我在main()中有以下代码:msgs,err:=ch.Consume(q.Name,//queue//..)cache:=ttlru.New(100,ttlru.WithTTL(5*time.Minute))//Cachetype//log.Println(reflect.TypeOf(msgs))'chanamqp.Delivery'gofunc(){//hereIuse`cache`and`msgs`asclosures.Anditworksfine.}我决定为而不是匿名创建单独的函数。我将其声明为funchitCache(cache*ttlru.Cache,msgs*chana

date - 无法将 "+0000 UTC"解析为 "T"。 Go utc时间解析错误

这个问题在这里已经有了答案:ConvertUTCstringtotimeobject(3个答案)关闭3年前。我试图将utc字符串之间的时间解析回Go时间。但是我得到了一个错误cannotparse"+0000UTC"as"T"。stringTime:=time.Now().UTC().String()t,e:=time.Parse(time.RFC3339,stringTime)fmt.Println(e)fmt.Println(t)Playground

pointers - Go 似乎没有像我想的那样传递指针

我这里有一个Go程序,我用它来测试我在一个更大的http服务程序中遇到的指针错误。我有一个结构指针,我想传递给一个函数来初始化它。当然,因为它是一个指针,所以我不必返回任何东西。应该直接修改吧。然而,这不是这里发生的事情。funcmain(){varthing*ThingModifyThing(thing)fmt.Println(thing)}funcModifyThing(thing*Thing){thing=NewThing()}funcNewThing()*Thing{thing:=Thing{}return&thing}///Output:如果我直接在我的thing上使用New

go - 如果函数将 slice 的元素复制到变量,它是使用指向该元素的指针还是副本?

示例情况:有一个全局结构保存了一个结构片段。typestctUserstruct{userstringprivilegeintcreatedtime.Time}typestctAllUsersstruct{sync.RWMutexslcUsers[]stctUser}varstrctAllUsersstctAllUsers有一个函数想要对用户进行操作,为了减少它锁定那个全局结构的时间,我想捕获一个用户并释放锁varstrctUserTempstctUserstrctAllUsers.RLockfora:=rangestrctAllUsers.slcUsers{iftmpName==st

go - 在NewX函数上返回指针背后有充分的理由吗?

这个问题已经有了答案:WhyshouldconstructorofGoreturnaddress?1答Pointersvs.valuesinparametersandreturnvalues3答在结构的“构造函数”上返回指针是否有充分的理由?例如:typeMyTypestruct{}funcNewMyType()*MyType{varm*MyTypereturnm}VStypeMyTypestruct{}funcNewMyType()MyType{varmMyTypereturnm}在大多数情况下,“构造函数”接受一些参数并返回指向类型的指针。为什么不返回一个值呢?提前谢谢。

go - 获取 slice 中值的指针

有什么办法可以得到指向slice中实际值的指针吗?我在map中有一棵优惠树:map[uint64]map[uint16][]offer为了通过id(从1到n)快速访问,我需要一片指针:[]*offer实际报价位于第一棵树中,slice中应该是指向实际报价的指针。我不能遍历树并收集实际值的指针,因为这个slice的range给我一个副本,但我总共有超过数十亿个这样的结构,副本会导致浪费我的内存:一个结构的40个字节会导致100+gb以及future更多。我还需要在树中存储连续的值片段,以便事实查找报价。可能有一些方法可以使用unsafe或reflect包来获取这些指针?指针索引只构建一次

json - 如何获取从ajax发送的JSON数据并解析为变量

我使用jquery为golangwebrestful服务发送ajaxjson数据。并想使用golang解析我后端的json数据。这是简单的JavaScript代码:$.ajax({url:"http://localhost:8080/persons",type:"POST",dataType:"json",data:{"data":'{"firstName":"Hello","lastName":"World"}'},success:function(res){console.log(res)},error:function(err){console.log(err)}})然后使用Ge

parsing - Golang 解析 json 响应

这里是Go新手,我正在尝试解析来自具有以下结构的LDAP服务的响应{"isMemberOf":[“cn=group1,ou=groups,dc=example,dc=domain,dc=com",“cn=group2,ou=groups,dc=example,dc=domain,dc=com","cn=.............................................,"cn=.............................................]}我需要将所有cn=值ex:group1,group2收集到[]string中,例如[group

optimization - 如何在 Golang 中获取指向任何数据类型值的字节指针?

我已经设法让以下函数在Go中运行。但是我想优化/概括代码,这样这个函数就会返回一个指向我传递给函数的任何值的第一个字节的指针。目前它只适用于[]uint32,但我想用它来获取起始内存地址作为许多其他类型(即byte[]、int[]、string等)的*byte。是否有更通用的方法来执行此操作,而不是将我需要处理的每一种类型都捕获为case语句?转到以下代码的Playground链接:https://play.golang.org/p/KtNTbERQGapackagemainimport("fmt""reflect""unsafe")funcToBytePointer(datainte

pointers - 如何在 Go 中引用具有相同功能的多个库并在它们之间内联切换

我想知道如何做类似的事情。我目前有多个具有相同结构和功能的包,但它们实际上从多个API检索值。我还加载了一个配置,该配置具有一个带有参数的数组,以便每个数组项使用这些包之一。我想知道如何根据配置值创建一个使用这些包之一的变量。希望这已经足够清楚了。这是我编写的用于解释的伪代码。提前致谢packagemainimport("errors""flag""os""project/lib""project/morelib""project/extralib""fmt""math""math/rand""time")funcstuff(infoRunInfo)(errerror){apiKey: